// 云函数入口文件
const cloud = require('wx-server-sdk')
const axios = require('axios')

cloud.init({
  // API 调用都保持和云函数当前所在环境一致
  env: cloud.DYNAMIC_CURRENT_ENV
})

const db = cloud.database()

// 云函数入口函数
exports.main = async (event, context) => {
  const { OPENID_WEB } = event
  const { OPENID, UNIONID } = cloud.getWXContext()
  let { data } = await db.collection('zixuanjjs').where({
    openid: OPENID || OPENID_WEB
  }).get()

  return {
    // 返回当前用户所有基金
    data
  }

  let result = []
  for (let item of data) {
    let { data: res } = await axios({
      url: `http://fundgz.1234567.com.cn/js/${item.code}.js`,
      method: 'get'
    })
    if (res) {
      res = jsonpToJson(res)
    }
    result.push({
      ...item,
      name: res.name,
      code: res.fundcode,
      gsz: res.gsz,
      gszzl: res.gszzl,
      earning: Number((res.gsz - res.dwjz) * item.quotient).toFixed(2)
    })
  }

  return {
    data: result
  }
}


function jsonpToJson(datas) {
  let jsonData = null
  // 下面是对获取到的数据进行处理，把jsonp格式的数据处理成json格式的数据
  if (typeof datas === 'string') {
    // 返回的是jsonp类型的数据，所以要用正则表达式来匹配截取json数据
    // const reg = /^\w+\((\{[^()]+\})\)\;$/
    // const matches = datas.match(reg)
    // // matches匹配到的是数组，数组第一个是所有正则表达式匹配的字符串，第二个是第一个小括号匹配到的字符串
    // if (matches) {
    //   jsonData = JSON.parse(matches[1])
    // }
    jsonData = datas.slice(8, -2)
    jsonData = JSON.parse(jsonData)
  }
  return jsonData
}